package com.itheima.d06_singleton;

import java.io.Serializable;

//饿汉式
public class SingleModel implements Serializable {

    //2.创建静态成员变量，保存对象引用
    private  static     SingleModel singleModel = new SingleModel();

    //1.构造方法私有化
    private SingleModel() {
        if(singleModel != null){
            throw new RuntimeException("单例类不允许创建多个对象");
        }
        System.out.println("SingleModel无参构造...");
    }

    //3.创建静态方法，返回对象引用
    public static SingleModel getInstance() {
        return singleModel;
    }

    //4.防止序列化攻击单例
    //在单例类中编写固定的方法，返回指定的单例对象，而不是新的对象
    private Object readResolve(){  //名称固定，返回结果固定
        //设置：反序列化获取的对象
        return singleModel;
    }

}
























